1. Field of the Invention
The invention relates to systems and methods for retrieving information from databases and more particularly to autoattendant systems and methods for routing incoming calls based on a telephone directory.
2. Description of the Related Technology
Forward searchable telephone directory listings and databases are conventionally ordered and keyed to the names of the listed parties, i.e., an alphabetically arranged listing of names with associated telephone numbers. It is not unusual to have several parties with (i) the same name or (ii) names that might be similarly pronounced by someone requesting a telephone listing or otherwise needing to designate a particular person by name. Upon identifying an ambiguous listing condition, i.e., more than one entry satisfying the spoken name search criteria, conventional automatic voice response units (VRUs) may request further information to resolve the conflict and identify the requested party. In particular, such VRUs may inform the caller that the system has more than one person having the particular name requested, play back the names and respective telephone numbers of the parties, and ask the caller to designate which of the parties is being requested. The caller would then be prompted to select from among the identified parties.
For example, a VRU may be used in voice dialing systems to provide speech activated dialing. Using such a system, a calling party speaks the name of the party to be called and the system attempts to recognize the speech as corresponding to a previously stored speech pattern. Similar systems may also be used to provide automated directory assistance functions, including traditional xe2x80x9c411xe2x80x9d services, which may include provisions for call completion to the directory number identified.
In contrast to traditional auto-dialers used to initiate outgoing calls, automated attendant (autoattendant) systems are used to automatically answer and handle incoming telephone calls. Traditionally, autoattendants play an announcement to the caller and provide for various selections using a VRU. Thus, the caller may be prompted to dial the extension of the party being called and/or given other options, such as leaving a voice message or accessing a directory of names if the extension of the called party is not known. While early directories required the caller to spell the name of the called party using a telephone DTMF keypad, later systems provided for speech recognition of a spoken name. This improvement has been made possible by the commercial availability of reliable speaker-independent voice recognition. Thus, by incorporating a voice responsive directory assistance fiction, the autoattendant answers an incoming call, asks the caller to speak the name of the party or department being called, uses a speaker-independent voice recognition engine to identify and translate a received speech signal into name data, uses the name data to access a telephone directory, and routes or extends the call to the corresponding telephone number.
These systems, however, fail to provide for the resolution of multiple listings under the same name. Instead, when a name search provides an ambiguous result, such conventional systems inflexibly rely on the caller""s ability to distinguish between parties based on telephone numbers, information that the caller may and probably does not have. These systems become even more cumbersome as the number of similar names maintained by the directory increase, such as in those parts of the world where similar names are common and where combinations of multiple pronunciations and nicknames further complicate entry resolution. Conventional systems also fail to provide for parties having multiple telephone numbers, e.g., voice, cellular, fax, etc.
Accordingly, a need exists for a directory search engine and method which can resolve ambiguities resulting from records having similar or identical primary search keys. A further need exists for a directory system and method of providing enhanced disambiguation facilities and user interfaces. A still further need exists for an automated telephone directory system which intelligently interacts with a calling party to identify and select a particular listing from among plural listings satisfying an initial search criterion.
A still further need exists for an automated telephone routing system and method which intelligently and dynamically handles directory searches resulting in the identification of multiple listings to one or more subscribers.
It is an object of the present invention to provide methods and apparatus which will overcome the disadvantages and meet the needs discussed above.
It is one object of the invention to provide for a database retrieval system which includes disambiguation of entries with the same or similar primary keys.
It is another object of the invention to provide for a user-friendly interface to an automated directory search function which intelligently prompts a user for further information to progressively eliminate non-qualifying listings and refocus the search to identify one or more desired listing(s).
It is a further object of the invention to provide a speaker independent voice recognition and voice response unit which automatically formulates a minimal set of prompts to identify a desired telephone listing when (1) the name of the desired party is not unique or (2) the caller does not initially provide or does not know the full name of the desired party.
The present invention addresses the disadvantages in the prior art by providing an intelligent database search engine which, when finding multiple listings satisfying a primary or initial search request, provides a series of prompts soliciting further information relative to the ambiguous results. The prompts are dynamically composed to quickly minimize the group of qualifying candidate listings until only one listing remains or until no further information distinguishing between or among the candidate listings would be helpful or is available.
A database retrieval system according to the invention includes a searchable database in which the primary key, such a name associated with a telephone directory listing, may be duplicated, i.e., is not unique. To resolve or disambiguate the conflict, the user is prompted to supply additional information determined to be helpful in selecting from among candidate records having the same key. For example, if multiple listings are identified for the telephone listing xe2x80x9cJohn Smithxe2x80x9d, the system will examine secondary data fields to identify information unique among the listings, such as the addresses of the listings. The system will then prompt the caller to identify which of the listings is desired, using the address information to distinguish among and select the desired listing(s).
The present adaptive disambiguation system and method dynamically selects additional listing information most useful in resolving the search ambiguity and caller selection process. Using either a fixed or entry specific prioritization, listings with identical or similar name key information are compared to identify distinguishing secondary information (e.g., employee location department, etc.) that might be given to the caller to complete the selection.
By way of example, the following candidate parties might be identified by a corporate automated attendant system in response to a caller asking to be connected to a xe2x80x9cRobert Cookxe2x80x9d:
As an initial point, conventional VRUs may not include the capability of matching a spoken name with variations in pronunciation possible for names of a directory listing. For example, the listing xe2x80x9cKochxe2x80x9d may be pronounced as xe2x80x9cKochxe2x80x9d, xe2x80x9cCookxe2x80x9d, xe2x80x9cCokexe2x80x9d, etc. The present system accommodates these variations and alternative pronunciations used by both (i) the named party and (ii) the caller by providing generalized and/or listing specific alterative pronunciations and nicknames corresponding to particular names and/or listings. While this feature provides enhanced search capabilities, it also tends to exacerbate the disambiguation problem.
Upon identifying the parties listed in the table above as candidates, the system uses a hierarchical search pattern to identify distinguishing information about the parties for presentation to the caller. As previously mentioned, conventional systems typically provide the caller with the names and telephone numbers of all of the candidate entries. Instead, the present system may first look to the Department field of the candidate entries to determine if they are unique. In this example, two of the candidate parties work in engineering, so that this category of information may not be useful to help select the correct party to be called. The system may next look to the location field and, as in the example above, determine that this information is unique among the candidates. The system would then provide the caller with both the name and location of the identified listings and ask the caller to select among the parties, typically by saying or using a keypad to input the number of the selection, e.g., xe2x80x9cSay or push xe2x80x981xe2x80x99 to dial Robert Cook in Arlington, Virginia; xe2x80x982xe2x80x99 for the Robert Cook in Philadelphia, Pennsylvania; and xe2x80x983xe2x80x99 for Mr. Cook in Silver Spring, Maryland.xe2x80x9d
In addition to a static presentation of selection alternatives, the system is adaptable to provide an interactive colloquy with the caller in an effort to resolve the ambiguity. For example, the system may attempt to limit the set of candidates by asking a series of questions such as: xe2x80x9cWe have [specify number found][xe2x80x9cmultiplexe2x80x9d] listings for employees named xe2x80x98Robert Cookxe2x80x99, do you know if your Mr. Cook is in Engineering or Legal?xe2x80x9d The system would then use any new information to select one or more potential candidates and/or to solicit additional information to resolve or minimize the ambiguity.
To reduce the perception that the system has misinterpreted the name of the party, the system may prompt the caller using the name pronunciation used by the caller. Thus, for example, the system may respond to the name xe2x80x9cRobert Cookxe2x80x9d with xe2x80x9cWe have multiple listings for xe2x80x98Robert Cookxe2x80x99, including spellings C-O-O-K, C-O-O-K-E, and K-O-C-H. Do you know which spelling is correct?xe2x80x9d Alternatively, had the caller requested a listing for a xe2x80x9cRobert Kochxe2x80x9d, the system would repeat the caller""s pronunciation in future prompts during the call, although using standard or party specified pronunciations when providing alternative listings. Thus, the system might respond xe2x80x9cWe have multiple listings for xe2x80x98Robert Kochxe2x80x99, including a xe2x80x98Robert Kochxe2x80x99 in Engineering, a xe2x80x98Bob Cookxe2x80x99 spelled K-O-C-H in sales, and a xe2x80x98Rob Kochxe2x80x99 in Legal. Do you know which department Mr. Koch is in?xe2x80x9d
The system may also use a fuzzy logic method in selecting candidates. Criteria may include, for example, the frequency of calls routed to a particular party through the system, party specific nicknames, origin of the caller in comparison to candidate locations, etc. The order of presentation of the candidate names may also be affected by such considerations so that most likely candidates are announced before others.
The system may further consider and eliminate unlikely pronunciations. For example, while the name spelled xe2x80x9cK-O-C-Hxe2x80x9d may be a potential candidate listing for the spoken name xe2x80x9cCookxe2x80x9d, the converse is unlikely, i.e., a name pronounced xe2x80x9cKochxe2x80x9d would not be spelled xe2x80x9cC-O-O-K.xe2x80x9d As another feature of the invention, the system may additionally resolve ambiguities based on spelling, providing the spelling of a name to the caller or asking the caller to spell the name of the party being called, the method chosen possibly being dependent on the number of candidate listings identified.
According to one aspect of the invention, an information retrieval system includes a data base including a plurality of records. Each of the records includes (i) a primary key field storing first identification data, (ii) at least one secondary key field storing secondary data, and (iii) a target information field storing requested data. An input processor receives input identification data. A search engine, responsive to the input identification data, accesses the data base, compares the input identification data with the first identification data and identifies matching records. A processor identifies respective secondary data of the matching records, the secondary data distinguishing one or more of the records from the others. An output device is connected to provide a prompt including the secondary data for soliciting an input designating one or more of the selected ones of the records.
According to a feature of the invention, the database may be an ordered directory of subscriber names and respective telephone numbers. According to another feature, the first identification data includes subscriber name information, the secondary data includes location information, and the requested data includes terminal address information. Secondary data may also include name information such as first, middle, nickname, or special pronunciations.
According to another feature of the invention, the system further includes a speech recognition engine receiving a speech signal for providing the input identification data. An interface may be included for providing the speech signal from a telephone network.
According to another feature, the system output device may include a speech playback means in the form of a speech synthesizer for providing a spoken request soliciting the input selecting the one or more of the matching records. Each of the records may include audio data, the speech synthesizer responsive to the audio data for providing the spoken request. The system may further mimic the input speech of the caller by identifying the phonemes of the spoken name and using that information when repeating the name back to the caller.
According to another feature of the invention, the secondary data includes a plurality of information types and each of the secondary key fields stores plural ones of the information types. The information types may include location, department, terminal equipment, alternative names, occupation and specialization information.
According to another feature of the invention, the system includes a telephone dialer for connecting a call in response to a receipt of the input designating one or more of the selected ones of the records.
According to another feature of the invention, each of the records includes audio data and the information retrieval system further comprises a speech synthesizerresponsive to the audio data for providing a speech signal corresponding to a designated one of the selected records. The audio data is formatted as a Windows Wave format (xe2x80x9c.WAVxe2x80x9d), MPEG Audio Layer 3 (xe2x80x9cMP3xe2x80x9d), or equivalent xe2x80x9cplayablexe2x80x9d file or may include pronunciation rules for generating speech representing information stored as a part of a corresponding one of the records. Pronunciation rules may also be stored in the form of a pronunciation table of ordered name pronunciation data. A speech generator is responsive to the name pronunciation data for generating a speech signal.
According to another feature of the invention, the system processor is operative in an interactive conversational mode for generating a series of prompts eliciting called party identification information from a caller based on distinguishing characteristics of an initially identified subset of potential called parties.
According to another aspect of the invention, a telephone directory system includes a directory of subscriber records, each of the subscriber records including (i) a primary key field storing subscriber name data, (ii) at least one secondary key field storing secondary data, and (iii) a target information field storing telephone number data. A speech recognition engine is connected for receiving a speech input from a caller and, in response, provides requested party data. A search engine responds to the requested party data for accessing the data base to identify selected ones of the records. The system further includes a processor for identifying respective secondary data of the selected ones of the records, the secondary data distinguishing one or more of the selected ones of the records from the others. An output device is connected to provide a prompt including the secondary data for soliciting an input designating one or more of the selected ones of the records.
According to another aspect of the invention, a method of retrieving data includes the steps of storing a plurality of records, each of the records including a primary key field storing first identification data, at least one secondary key field storing secondary data, and a target information field storing requested data, and receiving input identification data. The identification data is compared with the first identification data and so as to identify selected ones of the records. Respective secondary data of the selected records are used to distinguish one or more of the selected records from the others. A prompt, including the secondary data, is then provided for soliciting an input designating one or more of the selected ones of the records.
Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims, with reference being had to the accompanying drawings forming a part thereof, wherein like numerals refer to like elements throughout.